package servicios

import aerolineasYVuelos.Categoria
import aerolineasYVuelos.Asiento
import aerolineasYVuelos.SessionManager
import aerolineasYVuelosDaos.AsientoDAO
import primeraEntregaMain.Usuario
import aerolineasYVuelos.Tramo
import scala.collection.JavaConverters._
import scala.collection.mutable.Buffer
import aerolineasYVuelos.Categoria

object ServicioAsiento {

	def dameAsiento(id: Int): Asiento = {
		SessionManager.runInSession[Asiento] { () =>
	  		AsientoDAO.get(id)
		}
	}
  
	def asientoExistente(id: Int) :Boolean = {
 		dameAsiento(id) != null
	}
	
	def asientosDisponibles(unTramo: Tramo) {
	  SessionManager.runInSession[Buffer[Asiento]] { () =>
		  	AsientoDAO.asientosDisponiblesEnTramo(unTramo.getId).asScala.toBuffer[Asiento]
		}
	}
	
	def crearAsiento(id: Int, usuario: Usuario, categoria: Categoria, tramo: Tramo) {
		var asiento = new Asiento
		asiento.setId(id)
		asiento.setReservado(false)
		asiento.setUsuario(usuario)
		asiento.setCategoria(categoria)
		asiento.setTramo(tramo)
		SessionManager.runInSession[Unit] { () =>
		  	AsientoDAO.save(asiento)
		}
	}
}